/*
    <one line to give the library's name and an idea of what it does.>
    Copyright (C) 2013  Guillaume <email>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
*/


#include "msSamplerExplicit.h"

namespace atomism
{
  

bool msSamplerExplicit::isSamplerExplicitRegisteredInPython=0;
msRegistrar msSamplerExplicit::Registrar( "msSamplerExplicit" , msSamplerExplicit::createInstance );

//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------

std::ostream& operator<<(std::ostream& out,const msSamplerExplicit& sampler) {
  
 return( sampler.print(out) );
 }
 
//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------

void msSamplerExplicit::registryInPython()
{ 
 #if USE_PYTHON
 msSampler::registryInPython();

 if(  ! msSamplerExplicit::isSamplerExplicitRegisteredInPython ) {
   
    using namespace boost::python;
	  
    class_<msSamplerExplicit,bases<msSampler>,boost::shared_ptr<msSamplerExplicit> >
          ("msSamplerExplicit",  "A sampler for which the sampling data are explicitely defined",no_init	  
	    ) 
    .def( "New",&msSamplerExplicit::New ,"Return a shared pointer to a new object" )
	.staticmethod("New");
    msSamplerExplicit::isSamplerExplicitRegisteredInPython = 1 ;
    }
#endif
}

//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------

ostream& msSamplerExplicit::print(ostream& out) const{
 
 msSampler::print(out);
 output::printHeader(out,"msSamplerExplicit");
 
 out<<"Sampling point:"<<endl<<Samples<<endl;  
 return out;
 }

//-------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------


}
